﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace InkFx.WinControl.Core
{
    /// <summary>
    /// 将当前 属性 分配到 &quot;布局&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryLayoutAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "布局";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 &quot;行为&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryActionAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "行为";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 &quot;焦点&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryFocusAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "焦点";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 &quot;设计&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryDesignAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "设计";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 &quot;数据&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryDataAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "数据";
        }
    }
    
    /// <summary>
    /// 将当前 属性 分配到 &quot;外观&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryAppearanceAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "外观";
        }
    }

    /// <summary>
    /// 将当前 属性 分配到 &quot;操作&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategoryOperateAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "操作";
        }
    }


    /// <summary>
    /// 将当前 属性 分配到 &quot;重绘&quot; 这个分组
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class CategorySkinThemeAttribute : CategoryAttribute
    {
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "重绘";
        }
    }


    /// <summary>
    /// 
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public sealed class SRCategoryAttribute : CategoryAttribute
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="category">Type: string</param>
        public SRCategoryAttribute(string category) : base(category)
        {
        }
        /// <summary>
        /// 查阅指定类别的本地化名称。
        /// </summary>
        /// <param name="value">要查阅的类别的标识符。</param>
        /// <returns>类别的本地化名称；如果本地化名称不存在，则为 null。</returns>
        protected override string GetLocalizedString(string value)
        {
            return "外观";
        }
    }


}
